改了配置,却不想重启,怎么整?
有一个超时配置,需要从配置文件中读取,并设置到连接池里:
// 从配置文件中读取超时配置
timeout = CGlobalConf::readFileConf(“timeout”);
// 设置请求超时阈值
CConnectionPool::setTimeout(timeout);
// 服务启动时,设置ctrl+c回调函数
signal(SIGINT, sigint_shenjian_process);
// 捕获ctrl+c时,执行配置重新载入动作
void sigint_shenjian_process(int){
//从配置中读取超时配置
timeout= CGlobalConf::readFileConf(“timeout”);
//设置请求超时阈值
CConnectionPool::setTimeout(timeout);
}
// 服务启动时,初始化
CFileMonitor::init(){
// 获取初始md5
old_md5=xxx;
}
// 启动一个进程,监控文件变化
CFileMonitor::start(){
while(1){ // 循环检查
// 获取最新md5
now_md5=xxx;
// 比对md5是否变化,如果变化
if(now_md5!=old_md5){
//从配置中读取超时配置
timeout= CGlobalConf::readFileConf(“timeout”);
//设置请求超时阈值
CConnectionPool::setTimeout(timeout);
//修改md5
}
// 服务启动时,从注册中心获取配置,并注册回调函数
timeout = CConfCenter::(“timeout”, callback_shenjian);
// 设置请求超时阈值
CConnectionPool::setTimeout(timeout);
void callback_shenjian(timeout){
//在注册中心修改配置时,会收到回调
CConnectionPool::setTimeout(timeout);
}
福利来了!!!
免费直播,深度剖析支持千万并发的企业级注册中心内核架构与细节。
事件:千万并发企业级注册中心架构与细节
人物:奈学教育创始人CEO,孙玄
时间:9月23日20:00(今天晚8点)
如何参加?
扫码,获取直播地址和免费架构资料!
阅读原文,获取免费直播地址。
调研:
你是通过哪种方式修改配置的?